package com.shujia.wyh.day11;

import java.util.Comparator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

/*
    TreeMap：底层数据结构是红黑树，可以对key进行排序（1、自然排序  2、比较器排序）
 */
public class TreeMapDemo1 {
    public static void main(String[] args) {
        //将key的学生对象按照年龄从小到大排序
        //1、创建集合对象
        TreeMap<Student, String> map = new TreeMap<>(new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                //主要条件：按照年龄从小到大排序
                //this -- 待插入的元素
                //s -- 已经在树中的元素
                int i = o1.getAge()-o2.getAge();
                //隐含条件
                //年龄一样，姓名不一定一样
                int i2 = (i==0)?o1.getName().compareTo(o2.getName()):i;

                return i2;
            }
        });

        //2、创建元素对象
        Student s1 = new Student("吴涛", 18);
        Student s2 = new Student("陈涛", 17);
        Student s3 = new Student("王硕", 20);
        Student s4 = new Student("小虎", 19);
        Student s5 = new Student("吴涛", 18);

        //3、将元素添加到集合中
        map.put(s1, "打羽毛球");
        map.put(s2, "打乒乓球");
        map.put(s3, "踢足球");
        map.put(s4, "打英雄联盟");
        map.put(s5, "打网球");

        //4、遍历集合
        Set<Map.Entry<Student, String>> set = map.entrySet();
        for (Map.Entry<Student, String> entry : set) {
            Student key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + "---" + value);
        }
    }
}
